package(default_visibility = ["//visibility:public"])

exports_files([
    "tsconfig.json",
    "LICENSE",
])

# Developers should always run `bazel run :install`
# This ensures that package.json in subdirectories get installed as well.
alias(
    name = "install",
    actual = "@yarn//:yarn",
)

# This rule belongs in node_modules/BUILD
# It's here as a workaround for
# https://github.com/bazelbuild/bazel/issues/374#issuecomment-296217940
filegroup(
    name = "node_modules",
    # Performance workaround: list individual files
    # Reduces the number of files as inputs to nodejs_binary:
    # bazel query "deps(:node_modules)" | wc -l
    # This won't scale in the general case.
    # TODO(alexeagle): figure out what to do
    srcs = glob(["/".join([
        "node_modules",
        pkg,
        "**",
        ext,
    ]) for pkg in [
        "jasmine",
        "typescript",
        "zone.js",
        "tsutils",
        "@types",
        "tsickle",
        "hammerjs",
        "protobufjs",
        "bytebuffer",
        "reflect-metadata",
        "source-map-support",
        "minimist",
        "tslib",
    ] for ext in [
        "*.js",
        "*.json",
        "*.d.ts",
    ]]),
)

filegroup(
    name = "web_test_bootstrap_scripts",
    # do not sort
    srcs = [
        "//:node_modules/reflect-metadata/Reflect.js",
        "//:node_modules/zone.js/dist/zone.js",
        "//:node_modules/zone.js/dist/async-test.js",
        "//:node_modules/zone.js/dist/sync-test.js",
        "//:node_modules/zone.js/dist/fake-async-test.js",
        "//:node_modules/zone.js/dist/proxy.js",
        "//:node_modules/zone.js/dist/jasmine-patch.js",
    ],
)

filegroup(
    name = "angularjs",
    # do not sort
    srcs = [
        "//:node_modules/angular/angular.js",
        "//:node_modules/angular-mocks/angular-mocks.js",
    ],
)
